//
//  KVDate+Extension.swift
//  KVDateFormart
//
//  Created by 李康卫 on 16/7/26.
//  Copyright © 2016年 李康卫. All rights reserved.
//

import Foundation
//        刚刚(一分钟内)
//        X分钟前(一小时内)
//        X小时前(当天)
//        昨天 HH:mm(昨天)
//        MM-dd HH:mm(一年内)
//        yyyy-MM-dd HH:mm(更早期)
//        Tue Jul 26 22:07:41 +0800 2016

extension NSDate {
    class func dateFormart(dateString: String) -> NSDate? {
        //创建格式转化器
        let dateF = NSDateFormatter()
        dateF.locale = NSLocale(localeIdentifier: "CN")
        //设置转换格式
        dateF.dateFormat = "EEE MMM dd HH:mm:ss zzz yyyy"
        //将字符串转化为NSDate
        let dateDate = dateF.dateFromString(dateString)
        return dateDate
    }
    func sinaDateDescription() -> String {
//        NSCalendar
        //转换格式
        var formart = ""
        //当前时间跟新浪时间比较(当前日历专门来处理时间)
        let currentCalendar = NSCalendar.currentCalendar()
        
        if currentCalendar.isDateInToday(self) {
//            print("是今天")
            let seccondDate = NSDate().timeIntervalSinceDate(self)
            if seccondDate < 60 {
                return "刚刚"
            } else if seccondDate < 60*60 {
                let min: Int = Int(seccondDate/60)
                return "\(min)分钟前"
            } else {
                let hour: Int = Int(seccondDate/(60*60))
                return "\(hour)小时前"
            }
            
        } else if currentCalendar.isDateInYesterday(self) {
//            print("昨天")
            //        昨天 HH:mm(昨天)
            formart = "昨天 HH:mm"
        } else {
            
            //一年内
           let result = currentCalendar.compareDate(self, toDate: NSDate(), toUnitGranularity: NSCalendarUnit.Year)
            if result == NSComparisonResult.OrderedSame {
//                print("今年")
                formart = "MM-dd HH:mm"
            } else {
//                print("long long time")
                formart = "yyyy-MM-dd HH:mm"
            }
        }
        let dateFormart = NSDateFormatter()
        
        dateFormart.locale = NSLocale(localeIdentifier: "CN")
        
        dateFormart.dateFormat = formart
        //转化成字符串
        let dateString = dateFormart.stringFromDate(self)
        return dateString
    }
    
}